SQL Basic

SQL 개요
SQL 기능에 따른 분류
- 데이터 정의어(DDL): 테이블이나 관계의 구조를 생성하는데 사용(CREATE, ALTER, DROP, …)
- 데이터 조작어(DML): 테이블에 데이터를 검색, 삽입 수정, 삭제하는데 사용(SELECT, INSERT, DELETE, UPDATE, …)
        SELECT는 특별히 Query문(질의어)라고 함
- 데이터 제어어(DCL): 데이터의 사용 권한을 관리하는데 사용(GRANT, REVOKE, …)
데이터 조작어- 검색
    SELECT
SELECT bookname, publisher    (속성 이름)
FROM Book    (테이블 이름)
WHERE price>=10000;    (검색 조건)
ORDER BY (속성1) DESC, (속성2) ASC;

속성1에 대하여 내림차순으로 검색, 만약 속성1이 같다면 속성2에 대하여 오름차순으로 검색

SELECT 문에 위와 같은 집계함수를 통해서 출력을 변경할 수 있다.

ex)
SELECT SUM(saleprice) AS 총매출 FROM Orders WHERE custid=2;

custid가 2인 고객이 주문한 도서의 saleprice의 합을 총매출로 출력
- JOIN
두개 이상의 테이블에서 데이터를 가져옴
- 부속 질의(Subquery)
상관 부속질의(Correlated subquery)는 상위 부속질의의 튜플을 이용하여 하위 부속질의를 계산한다.
상위 부속질의와 하위 부속질의가 독립적이지 않고 서로 관계를 맺고 있음
- EXISTS
조건에 맞는 튜플이 존재하면 결과에 표함
부속질의문의 어떤 행이 조건에 만족하면 참
NOT EXISTS는 부속질의문의 모든 행이 조건에 만족하지 않을 때만 참
데이터 정의어
    - CREATE
테이블을 구성하고, 속성과 속성에 대한 제약을 정의하며, 기본키 및 외래키를 정의
PRIMARY KEY는 기본키를 정할 때 사용하고,
FOREIGN KEY는 외래키를 지정할 때 사용하며,
ON UPDATE와 ON DELETE는 외래키 속성의 수정과 튜플 삭제 시 동작
    - ALTER
생성된 테이블의 속성과 속성에 관한 제약을 변경, 기본키 및 외래키를 변경한다.
ADD, DROP은 속성을 추가하거나 제거할 때 사용한다.
MODIFY는 속성의 기본값을 설정하거나 삭제할 때 사용
    - DROP
테이블을 삭제하는 명령
테이블의 구조와 데이터를 모두 삭제(데이터만 삭제할 때는 DELETE 사용)
데이터 조작어
    - INSERT
테이블에 새로운 튜플을 삽입하는 명령
대량 삽입(Bulk Insert)란 한번에 여러 개의 튜플을 삽입하는 방법이다.
    - UPDATE
특정 속성 값을 수정(SET과 함께 사용)
    - DELETE
테이블에 있는 기존 튜플을 삭제하는 명령